package fl.ass.service.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import fl.ass.facade.dto.AssVfRtnLogDTO;
import fl.ass.service.po.AssVfRtnLog;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 资产核销回款记录表 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的PO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO, 向上是PO转DTO
 */
public class AssVfRtnLogTransform {

    /**
     * PO 转  DTO
     *
     * @param po AssVfRtnLog
     * @return AssVfRtnLogDTO
     */
    public static AssVfRtnLogDTO baseToDTO(AssVfRtnLog po) {
        AssVfRtnLogDTO dto = null;
        if (po != null) {
            dto = new AssVfRtnLogDTO();
            dto.setId(po.getId());
            dto.setVfInfoId(po.getVfInfoId());//资产核销信息表ID（ASS_VF_INFO.ID）
            dto.setVfFundNo(po.getVfFundNo());//资金编号
            dto.setRtnAmt(po.getRtnAmt());//回款金额
            dto.setIsAllRtn(po.getIsAllRtn());//是否全部回款（1：全部回款；0：部分回款）
            dto.setRtnTm(po.getRtnTm());//回款时间
            dto.setIsDel(po.getIsDel());//是否删除（0：否；1：是）

            dto.setCrtTm(po.getCrtTm());//创建时间
            dto.setCrtUsrId(po.getCrtUsrId());//创建人
            dto.setMdfTm(po.getMdfTm());//修改时间
            dto.setMdfUsrId(po.getMdfUsrId());//修改人
        }
        return dto;
    }

    /**
     * DTO 转  PO
     *
     * @param dto AssVfRtnLogDTO
     * @return AssVfRtnLog
     */
    public static AssVfRtnLog baseToPO(AssVfRtnLogDTO dto) {
        AssVfRtnLog po = null;
        if (dto != null) {
            po = new AssVfRtnLog();
            po.setId(dto.getId());
            po.setVfInfoId(dto.getVfInfoId());//资产核销信息表ID（ASS_VF_INFO.ID）
            po.setVfFundNo(dto.getVfFundNo());//资金编号
            po.setRtnAmt(dto.getRtnAmt());//回款金额
            po.setIsAllRtn(dto.getIsAllRtn());//是否全部回款（1：全部回款；0：部分回款）
            po.setRtnTm(dto.getRtnTm());//回款时间
            po.setIsDel(dto.getIsDel());//是否删除（0：否；1：是）

            po.setCrtTm(dto.getCrtTm());//创建时间
            po.setCrtUsrId(dto.getCrtUsrId());//创建人
            po.setMdfTm(dto.getMdfTm());//修改时间
            po.setMdfUsrId(dto.getMdfUsrId());//修改人
        }
        return po;
    }

    /**
     * PO 转  DTO
     *
     * @param po AssVfRtnLog
     * @return AssVfRtnLogDTO
     */
    public static AssVfRtnLogDTO toDTO(AssVfRtnLog po) {
        AssVfRtnLogDTO dto = baseToDTO(po);
        //设置自定义扩展属性
        return dto;
    }

    /**
     * DTO 转  PO
     *
     * @param dto AssVfRtnLogDTO
     * @return AssVfRtnLog
     */
    public static AssVfRtnLog toPO(AssVfRtnLogDTO dto) {
        AssVfRtnLog po = baseToPO(dto);
        //设置自定义扩展属性
        return po;
    }

    /**
     * PO集合 转 DTO集合
     *
     * @param list List<AssVfRtnLog>
     * @return List<AssVfRtnLogDTO>
     */
    public static List<AssVfRtnLogDTO> toDTOList(List<AssVfRtnLog> list) {
        List<AssVfRtnLogDTO> voList = new ArrayList<AssVfRtnLogDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (AssVfRtnLog po : list) {
                voList.add(toDTO(po));
            }
        }
        return voList;
    }
}
